package test;

import java.io.IOException;
import java.text.NumberFormat;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ForkJoinTask;

import org.junit.jupiter.api.Test;

import CNN.Convolution;
import CNN.Filter;
import CNN.MaxPooling;
import CNN.Util;
import dataset.MnistDataReader;
import math.Im2col;
import math.MatrixTransposion;
import math.PaddingArray;

class testcnn {

	@Test
	void test() {

		ForkJoinPool forkJoinPool = new ForkJoinPool();
		int pad = 0;
		double[][][][] x = newArray(1, 3, 7, 7);

		if (pad != 0) {

			double[][][][] y = new double[x.length][x[0].length][x[0][0].length + pad * 2][x[0][0][0].length + pad * 2];

			PaddingArray pa = new PaddingArray(x, y, pad, 0, 0, y.length - 1);

			ForkJoinTask<Void> a = forkJoinPool.submit(pa);

			a.join();

			x = y;
		}

		Util.printArray(x);
		

		int N = x.length;
		int C = x[0].length;
		int H = x[0][0].length;
		int W = x[0][0][0].length;

		int stride = 1;

		int fh = 5;
		int fw = 5;

		int oh = (H + 2 * pad - fh) / stride + 1;
		int ow = (W + 2 * pad - fw) / stride + 1;

		double[][] col = new double[x.length * oh * ow][fh * fw * C];

		Im2col im2col = new Im2col(x, fh, fw, oh, ow, stride, pad, col, 0, N - 1);
		ForkJoinTask<Void> a = forkJoinPool.submit(im2col);

		a.join();
	
		return;
	}

	@Test
	public void testFilterToCol() {
		double[][][][] x = newArray(3,3,5,5);
		
		Util.printArray(x);
		
		ForkJoinPool forkJoinPool = new ForkJoinPool();
		
		int fh = x[0][0].length;
		int fw = x[0][0][0].length;
		
		double[][] col = new double[x.length][fh * fw * x[0].length];
		
		Im2col im2col = new Im2col(x, fh , fw, 1, 1, 0, 0, col, 0, x.length - 1);
		
		ForkJoinTask<Void> a = forkJoinPool.submit(im2col);

		a.join();
		
		double[][] transposedCol = new double[col[0].length][col.length];
		
		MatrixTransposion mt = new MatrixTransposion(col,transposedCol,0,col.length - 1);
		
		a = forkJoinPool.submit(mt);
		
		a.join();
		
		return;
		
		
	}
	
	@Test
	public void testConv() throws IOException {
		
		MnistDataReader mnistMatrix = new MnistDataReader("D:/AI/mnist-data-reader-master/data/train-images.idx3-ubyte",
				"D:/AI/mnist-data-reader-master/data/train-labels.idx1-ubyte");

		int batchSize = 2;

		NumberFormat nf = NumberFormat.getPercentInstance();
		nf.setMinimumFractionDigits(2);

		double[][][][] x_batch = new double[batchSize][1][28][28];
		double[][] t_batch = new double[batchSize][10];

		mnistMatrix.getData(x_batch, t_batch);
		
		
		Filter conv = new Convolution(2,1,5,5,0.05d);
		
		double[][][][] result = conv.forward(x_batch);
		
		Util.printArray(result);
		
		conv.backward(null);
		
		return;		
	}
	
	@Test
	public void testBackward() {
		
		double[][][][] x = {{{
			{0.86910812,0.3506574,0.6647572,0.92678264,0.40264989},
			{0.78103221,0.0427866,0.41310688,0.12749484,0.74218192},
			{0.73156386,0.7501522,0.069805,0.92430927,0.34348673},
			{0.20971164,0.92534592,0.48162012,0.47395129,0.00676149},
			{0.74314323,0.35059281,0.28789714,0.88278411,0.04275545}
			},

			{
			{0.36543609,0.52901145,0.90865454,0.35347429,0.8267398},
			{0.04081408,0.32185838,0.99060301,0.50024844,0.09529992},
			{0.3714515,0.49960233,0.90733671,0.23221909,0.64270982},
			{0.34572919,0.46835657,0.0379422,0.44419979,0.12621974},
			{0.44759958,0.89708773,0.23769326,0.01854938,0.27164823}
			},
			{
			{0.35031615,0.49315547,0.53502561,0.08969471,0.21574991},
			{0.32254929,0.57477355,0.68296206,0.09676954,0.79511665},
			{0.07524178,0.53412863,0.40844804,0.7184574,0.17556683},
			{0.68617998,0.07750441,0.2970788,0.56221667,0.20274764},
			{0.39389268,0.32849062,0.1051606,0.70443848,0.0527593}
			}
			},

			{{
			{0.85889128,0.09051485,0.58192446,0.46428548,0.74319863},
			{0.61052161,0.07019066,0.87998838,0.81184339,0.54243234},
			{0.78220521,0.45927578,0.93622124,0.93351549,0.43673954},
			{0.57077285,0.30592712,0.40242877,0.15250975,0.5249258},
			{0.26185463,0.64561724,0.11933809,0.79436374,0.25411664}
			},
			{
			{0.941935,0.21845879,0.09412297,0.59335125,0.51713157},
			{0.35913029,0.09684896,0.09769307,0.67601192,0.83744672},
			{0.04625939,0.14407396,0.05921768,0.18949197,0.86874655},
			{0.76906534,0.07534846,0.33104844,0.04889525,0.8392268},
			{0.49450877,0.54731644,0.55425716,0.76527785,0.46133638}
			},
			{
			{0.32811821,0.55592011,0.95534972,0.59951682,0.61159468},
			{0.93816361,0.74978959,0.8192516,0.23792379,0.72719227},
			{0.32174588,0.32206016,0.37811038,0.50194774,0.54723016},
			{0.99728689,0.82676111,0.95376383,0.68843635,0.4715376},
			{0.17107994,0.12477475,0.34695972,0.25717714,0.73340696}
			}}};
		
		Filter conv = new Convolution(3,3,5,5,0.05d);
		
		double[][][][] result = conv.backward(x);
		
		return;		
	}
		
	
	
	@Test
	public void testPool() {
		
		MaxPooling mp = new MaxPooling(2,2,0,2);
		
		double[][][][] x = newArray(5,3,4,4);
		
		Util.printArray(x);
		
		double[][][][] result = mp.forward(x);
		
		double[][][][] dout = newArray(result.length,result[0].length,result[0][0].length,result[0][0][0].length);
		
		Util.printArray(dout);
		
		double[][][][] dxout = mp.backward(dout);
		
		Util.printArray(dxout);
		return;
		
	}
	
	public double[][][][] newArray(int n, int c, int h, int w) {
		double[][][][] a = new double[n][c][h][w];

		for (int i = 0; i < n; i++)
			for (int j = 0; j < c; j++) {
				for (int k = 0; k < h; k++) 
					for(int d = 0; d < w; d++)
				{
					a[i][j][k][d] = Math.random();
				}
			}

		return a;
	}
	
	public double[][][][] dout(){
		double[][][][] dout = 
			{{{{0.141334681,0.456209884,0.684660041,0.330424984,0.76778547,0.187189075,0.443542097,0.65544947,0.16049677,0.429693078,0.123496417,0.908197856,0.880020874,0.703776521,0.942658049,0.014933828,0.757165456,0.078302856,0.122643903,0.093242691,0.266299538,0.719109887,0.936713604,0.488119853},
				{0.888696586,0.885685158,0.037533309,0.95006614,0.924196955,0.699136101,0.285032041,0.559712877,0.804198804,0.950528287,0.155191566,0.840413051,0.334963149,0.196204128,0.95221252,0.868399879,0.457445011,0.395484111,0.469350899,0.089527283,0.048339645,0.386190619,0.447820665,0.98227152},
				{0.006758881,0.564724627,0.16850986,0.668586695,0.371929582,0.239963812,0.777858982,0.067371618,0.499532665,0.264039855,0.497102159,0.209718703,0.387777364,0.708092176,0.693173186,0.890780465,0.089032716,0.547383686,0.899929697,0.920002765,0.768813982,0.547703935,0.269950974,0.849638003},
				{0.381148786,0.803773574,0.610015918,0.210865897,0.117824387,0.670403524,0.107469245,0.967513112,0.758743409,0.148450626,0.090036068,0.109277341,0.801592987,0.140151714,0.678246061,0.049525425,0.781257611,0.372205986,0.987480032,0.76714909,0.502883682,0.200015175,0.615753757,0.437625933},
				{0.007229365,0.952780275,0.513704611,0.635347903,0.962910645,0.956691938,0.974849265,0.057442268,0.837380664,0.882241695,0.407030987,0.118725768,0.636955956,0.60171905,0.750077938,0.698095424,0.225929939,0.3142497,0.890044087,0.778574234,0.2357906,0.298268503,0.187007301,0.716393782},
				{0.357785607,0.285109914,0.281249593,0.398909755,0.375554889,0.112438012,0.671746656,0.606810922,0.639277324,0.012527013,0.171245327,0.482995474,0.808754488,0.617942344,0.233809065,0.128653264,0.600081112,0.525961414,0.323562961,0.996506334,0.959028656,0.053112071,0.947471928,0.931824042},
				{0.553994511,0.632496385,0.710336354,0.423743437,0.732346504,0.15910552,0.766792197,0.872589503,0.116218157,0.472121571,0.342952853,0.453303791,0.827287796,0.078240429,0.579432797,0.460754106,0.924799833,0.166339336,0.80784373,0.859612236,0.017064467,0.94135154,0.514456144,0.129650326},
				{0.163897501,0.313999964,0.667570097,0.396721011,0.125939163,0.023080124,0.789241374,0.270349942,0.73651737,0.338272337,0.13736026,0.770784056,0.672696902,0.594002062,0.630681277,0.221502557,0.18438333,0.938655913,0.697255327,0.00761152,0.403826273,0.848500584,0.055815196,0.656207886},
				{0.702593917,0.151940572,0.550018698,0.781711325,0.189066389,0.537289691,0.547054357,0.057328064,0.846723244,0.776020477,0.084966095,0.523223653,0.001975754,0.183494843,0.907155659,0.222646032,0.780022008,0.160468017,0.757872149,0.369154879,0.958179336,0.011197067,0.829100212,0.991276346},
				{0.158374616,0.617774565,0.047110006,0.275316992,0.633950195,0.96534658,0.966032984,0.6327348,6.69E-04,0.959163678,0.396180115,0.855378758,0.137781784,0.45195231,0.536419693,0.590072933,0.142236838,0.908883451,0.302784265,0.763435136,0.657607193,0.677453693,0.749577216,0.518483676},
				{0.11901425,0.40088416,0.96460144,0.686500837,0.456321654,0.716180573,0.586733861,0.810784503,0.580090207,0.01178734,0.141921452,0.263334583,0.538264556,0.684808017,0.722775528,0.051184227,0.576287719,0.034052557,0.147292934,0.496000046,0.459317063,0.652711855,0.623834373,0.088739836},
				{0.322440841,0.943248387,0.122341474,0.470569996,0.003271895,0.167131349,0.105875779,0.671909348,0.281021332,0.263333383,0.011914669,0.453379627,0.697131101,0.522045265,0.889440288,0.835607327,0.664771892,0.0838538,0.895709865,0.679235603,0.387988466,0.149667616,0.935696414,0.48216884},
				{0.70600169,0.732963906,0.587541256,0.397986727,0.354152614,0.76346921,0.598960888,0.847628605,0.290201029,0.360175327,0.662402248,0.995862928,0.673167043,0.131631418,0.880842374,0.794721106,0.801630953,0.432741728,0.32147955,0.257988245,0.819383442,0.60983813,0.321164932,0.124008365},
				{0.278544193,0.399584862,0.755275128,0.088474765,0.713744352,0.812312717,0.310827569,0.34454122,0.225693774,0.026668558,0.914992429,0.254502935,0.698431774,0.050005324,0.861756081,0.595460631,0.681785472,0.157726442,0.852342858,0.97079534,0.159037491,0.414837878,0.119103347,0.659945189},
				{0.389530314,0.904250236,0.03792902,0.390889608,0.766911855,0.638911998,0.150854572,0.262911001,0.165953421,0.518644331,0.318360892,0.321616823,0.564346837,0.107586869,0.799993342,0.093870409,0.820615579,0.454453111,0.422261033,0.727191912,0.365249924,0.655332743,0.634385174,0.246355424},
				{0.219403489,0.367567513,0.175315326,0.839321981,0.19396496,0.023266744,0.279534516,0.015312564,0.341545164,0.06231653,0.834525355,0.939739003,0.734896252,0.107277012,0.669371402,0.243874988,0.427506742,0.636350398,0.201818617,0.131563136,0.015591982,0.375641409,2.24E-04,0.660918475},
				{0.565426854,0.328221575,0.427172997,0.665902696,0.795943622,0.085047151,0.423135902,0.900807148,0.313744816,0.821569632,0.661411575,0.640097409,0.386157056,0.173917573,0.759675115,0.146735529,0.207678946,0.00981629,0.968824166,0.134010763,0.86615206,0.961952312,0.77640718,0.589073045},
				{0.247211197,0.475277344,0.159771664,0.100778144,0.929046201,0.034786999,0.803172287,0.140117067,0.714234467,0.18659682,0.453429657,0.578416555,0.821379581,0.942678968,0.730332501,0.096661191,0.916518618,0.16841059,0.130827417,0.03870262,0.102736311,0.592124992,0.670141981,0.691784261},
				{0.706151796,0.147144988,0.588338486,0.939724765,0.197419507,0.459317463,0.817397147,0.727267354,0.87011285,0.426856982,0.451779299,0.79851603,0.960835436,0.004345167,0.294522614,0.728044006,0.740631542,0.499022151,0.661271787,0.3501736,0.733243745,0.915044918,0.016249779,0.310090716},
				{0.622992574,0.140176624,0.687026606,0.60987162,0.603529292,0.059410355,0.859043558,0.703163331,0.888439608,0.001319216,0.286202866,0.90417304,0.855652546,0.275464207,0.670434199,0.619786215,0.829835739,0.942980287,0.461000822,0.188047241,0.820434124,0.377499945,0.903409986,0.911899801},
				{0.627736537,0.619862957,0.528143676,0.213999405,0.605330377,0.007599527,0.911027246,0.706573257,0.02453191,0.068963815,0.459904994,0.36971793,0.424855641,0.211333253,0.186393918,0.962188331,0.554313094,0.305078482,0.906837393,0.250646238,0.504308008,0.866547846,0.083182947,0.636500543},
				{0.42612105,0.177598882,0.562359588,0.28388503,0.779454337,0.344149338,0.801831586,0.90798422,0.408232225,0.992508176,0.779357266,0.969831429,0.864831089,0.029786801,0.676583068,0.141867279,0.311138481,0.653479785,0.598954474,0.557961212,0.013317083,0.585343027,0.04852691,0.542262376},
				{0.916876921,0.325986618,0.60161177,0.223160371,0.039634613,0.079138874,0.259793719,0.681800459,0.452366085,0.878326738,0.240707124,0.059012076,0.430434814,0.363757003,0.554061389,0.350172899,0.954404806,0.603471922,0.568756034,0.454445709,0.113623961,0.33039166,0.918528282,0.412988676},
				{0.123989834,0.975645175,0.516427159,0.670153774,0.609586609,0.918630434,0.152510132,0.622352748,0.517608612,0.445533351,0.134509394,0.68118313,0.536962012,0.010574547,0.697816655,0.57057183,0.173163403,0.528041553,0.458987093,0.602106992,0.695629987,0.588203647,0.016064191,0.228393864}},

				{{0.018183017,0.686495034,0.909379273,0.261183407,0.199562539,0.782891562,0.548080669,0.759187409,0.657978273,0.767195202,0.380499332,0.739907156,0.382197431,0.695979122,0.540559087,0.550467356,0.39139778,0.988235981,0.43779137,0.944360705,0.446989934,0.119310467,0.275115762,0.654172828},
				{0.551839842,0.736486508,0.276399443,0.524770901,0.085799128,0.534638762,0.484909683,0.077104088,0.521177073,0.67664657,0.354125969,0.709677283,0.537764959,0.020808111,0.993978975,0.612924061,0.014249929,0.926281318,0.858435602,0.871118724,0.811332084,0.947617279,0.864451156,0.157131384},
				{0.481585101,0.300740846,0.417660631,0.887244155,0.042077139,0.585272069,0.586783032,0.696410538,0.727995543,0.881871636,0.716564431,0.618754003,0.208995338,0.008332073,0.098186467,0.413766077,0.094717887,0.414425501,0.926419,0.065578341,0.681902932,0.923058506,0.664396882,0.60084635},
				{0.802743785,0.284072616,0.109752923,0.020198171,0.322611523,0.297069081,0.909939753,0.318863794,0.305001399,0.080924852,0.009925968,0.284016031,0.112530582,0.920206256,0.532052356,0.999517493,0.7450431,0.002475577,0.885686702,0.763182156,0.529354625,0.275525132,0.483416258,0.427324437},
				{0.869895945,0.599862155,0.300869092,0.010282345,0.145490886,0.349307219,0.65885713,0.794765698,0.994730785,0.621357573,0.02938462,0.028294126,0.170884096,0.259006347,0.37116829,0.771653962,0.867006689,0.956997143,0.485666119,0.403216998,0.912894416,0.828032936,0.151213798,0.780128199},
				{0.527746579,0.938246972,0.340719362,0.081783406,0.375885008,0.48628291,0.6574677,0.916682393,0.517600549,0.496619857,0.233938953,0.360656463,0.47317497,0.125317496,0.730145527,0.212633894,0.025352839,0.935145454,0.740844551,0.903520704,0.574014683,0.787100072,0.875084306,0.174438134},
				{0.826529257,0.316600611,0.006893771,0.852472294,0.358239096,0.315196577,0.712527497,0.795255768,0.109760553,0.722406139,0.707527982,0.350114574,0.201255492,0.347345331,0.175970729,0.479178422,0.538558744,0.88609641,0.244607342,0.038765708,0.562022136,0.278302903,0.496225036,0.569519519},
				{0.146161981,0.955267998,0.339391085,0.353184093,0.096673775,0.071871986,0.255853503,0.422576111,0.911104722,0.385913417,0.432219704,0.673218375,0.470450356,0.051017769,0.049137718,0.21826842,0.111169208,0.223046572,0.549054746,0.652787821,0.090585259,0.044978837,0.532730359,0.949062735},
				{0.80337449,0.271525771,0.545033043,0.291599586,0.232809249,0.522278961,0.902149845,0.278584551,0.027659305,0.91098087,0.885191205,0.566009034,0.284126458,0.588546139,0.079273819,0.211327695,0.58191511,0.558750637,0.372516786,0.685429447,0.074518362,0.978044815,0.145987101,0.764866082},
				{0.466025395,0.034736555,0.483482423,0.29069716,0.520232578,0.417827923,0.80914095,0.085973888,0.342567646,0.332079512,0.22121902,0.160798618,0.051312072,0.99341464,0.931979453,0.702060988,0.611834166,0.547565336,0.646484511,0.24436548,0.546021504,0.394900402,0.417189492,0.849329342},
				{0.948827864,0.975665738,0.496584093,0.082344011,0.744826776,0.172405252,0.976730478,0.069056938,0.39988964,0.62012067,0.552398503,0.938245085,0.366584024,0.379766771,0.573600153,0.51341536,0.386613047,0.626968386,0.66367647,0.202380942,0.39959433,0.235383933,0.570692644,0.652227375},
				{0.214703088,0.392929698,0.592747377,0.886495111,0.290180461,0.679118126,0.871905121,0.32207067,0.935435,0.353052217,0.086810912,0.275191471,0.001441721,0.954157452,0.590649116,0.30913399,0.657369311,0.701521384,0.838959253,0.050569104,0.164843405,0.592750747,0.030923005,0.907232055},
				{0.655979578,0.549544011,0.248088806,0.456468865,0.797296892,0.434717455,0.016101633,0.142385319,0.878849008,0.274210977,0.137856948,0.318737893,0.306386725,0.557639589,0.850599734,0.605371036,0.694092093,0.062245123,0.844840826,0.987918622,0.756400971,0.247642122,0.449564725,0.083651638},
				{0.979657603,0.902540653,0.336053715,0.520768328,0.61782091,0.389667998,0.421755989,0.434086927,0.901169262,0.531400287,0.265975812,0.667015373,0.472926657,0.906153962,0.140766128,0.387836117,0.975960158,0.084376426,0.133255222,0.477758665,0.400174546,0.123013689,0.089740778,0.228856107},
				{0.270957295,0.458622633,0.947235826,0.601916304,0.010002909,0.191833986,0.014753462,0.537402208,0.832072595,0.639661391,0.064467837,0.587129942,0.354722149,0.947190987,0.671991145,0.439937509,0.692756252,0.496475,0.105357656,0.751530747,0.185145758,0.827991974,0.203907287,0.056857288},
				{0.059369225,0.798825084,0.111113106,0.44277369,0.276618124,0.741749375,0.429498334,0.089434442,0.521030577,0.460707557,0.351140312,0.750745926,0.79709562,6.93E-04,0.583860103,0.737392531,0.381596372,0.263849133,0.441048515,0.990355893,0.939937188,0.708628097,0.292180052,0.388512499},
				{0.461426017,0.565151459,0.681418984,0.520809125,0.294060565,0.227441225,0.813321955,0.771679133,0.966592439,0.741989305,0.777494461,0.7177772,0.674120682,0.602167297,0.838159042,0.514773972,0.273192609,0.379269026,0.349945145,0.164865972,0.383366036,0.073517037,0.377812004,0.29882054},
				{0.72441405,0.452153525,0.896867605,0.380789376,0.131829623,0.056775144,0.526947918,0.049788266,0.788014208,0.008359955,0.11717294,0.64865504,0.082510743,0.215974353,0.137296578,0.859461294,0.171868574,0.103936405,0.755520237,0.763767989,0.748203524,0.512251364,0.686540223,0.57677869},
				{0.74524389,0.996423928,0.378951784,0.766358657,0.711628854,0.355291337,0.877733239,0.261051761,0.363452803,0.849309912,0.745386098,0.975641413,0.391525718,0.23676697,0.754407701,0.938465477,0.943545934,0.451679385,0.674125259,0.891609987,0.327358323,0.474678389,0.366521331,0.353269382},
				{0.388697983,0.706970209,0.578532422,0.780975967,0.705295026,0.947500272,0.272403911,0.655065081,0.208943842,0.894738544,0.071036255,0.013656411,0.098115696,0.947042239,0.411858599,0.213595966,0.935920991,0.959340907,0.300618095,0.466217408,0.641703353,0.528929014,0.135574072,0.002445648},
				{0.679274702,0.329438777,0.932938336,0.558679042,0.120776813,0.989606348,0.426004162,0.243051418,0.422381802,0.022232501,0.933258228,0.741088678,0.68651985,0.348779035,0.594870999,0.250438803,0.905049786,0.036330099,0.56231333,0.496268539,0.178764147,0.966187515,0.992447716,0.672083609},
				{0.190847214,0.287157939,0.245294864,0.175143763,0.275381162,0.671628837,0.51377753,0.561307681,0.266721478,0.588818943,0.224095248,0.231057271,0.941540128,0.037128742,0.936984893,0.9766145,0.272560829,0.43630473,0.152974035,0.669477943,0.901487884,0.670170671,0.378835114,0.048371137},
				{0.208356161,0.591968283,0.047800441,0.77950764,0.105506819,0.656888332,0.402699067,0.704242535,0.216619304,0.730162865,0.249028947,0.463594304,0.414707492,0.53412774,0.564078523,0.494784404,0.787713809,0.643953867,0.308563885,0.731856527,0.976311825,0.419285238,0.428849197,0.210601315},
				{0.485754733,0.767809504,0.96066954,0.177426355,0.012083285,0.176827653,0.349376953,0.232475668,0.042733387,0.020176852,0.587081883,0.499216305,0.99256043,0.750400698,0.533664077,0.805874438,0.918523482,0.219849445,0.836478207,0.388517041,0.419749673,0.039432239,0.192681373,0.68123925}}},


				{{{0.674424845,0.580032478,0.308460925,0.345831785,0.690934025,0.949136119,0.801042739,0.811466723,0.757901045,0.034012163,0.462211796,0.244353896,0.766253695,0.492823479,0.756178086,0.047984751,0.54616708,0.396335207,0.159972791,0.706493616,0.612714811,0.07542711,0.971161182,0.02683147},
				{0.746283376,0.613404932,0.505509884,0.609860556,0.647282841,0.337145726,0.18634848,0.686142659,0.499412414,0.60740003,0.887715971,0.289107829,0.651716588,0.186113917,0.034985235,0.106454272,0.786894244,0.467422308,0.389509247,0.250044428,0.881799106,0.899004268,0.147935168,0.615226094},
				{0.985797057,0.991779925,0.97218325,0.462421705,0.343622042,0.418468003,0.832689852,0.34699278,0.671599053,0.835311741,0.095364667,0.54780065,0.459579191,0.226319989,0.111814272,0.700548771,0.015658064,0.765659772,0.682735577,0.428905809,0.596726035,0.421374929,0.155984464,0.384572885},
				{0.375124767,0.78239548,0.593675854,0.256872332,0.180161094,0.880840382,0.396773972,0.993099355,0.922956357,0.102906315,0.010982297,0.682792347,0.364085432,0.634173425,0.854344717,0.302241121,0.41568616,0.268948813,0.404820765,0.789966917,0.483196886,0.828306778,0.465199325,0.729571918},
				{0.446606133,0.877774478,0.983067339,0.253269762,0.757074792,0.913150814,0.445150378,0.647573273,0.782018191,0.69173451,0.788195045,0.542029016,0.970211747,0.926277832,0.972663412,0.49255269,0.628210412,0.130269985,0.850862045,0.232833482,0.100348694,0.00569455,0.727729567,0.860439305},
				{0.926814877,0.398193402,0.060357888,0.748669238,0.117769263,0.509609305,0.071424455,0.030863174,0.026202883,0.754168044,0.662063904,0.09079315,0.428210077,0.372100142,0.901309142,0.610924541,0.326574149,0.673291337,0.542083911,0.379749497,0.682042857,0.573589973,0.467829652,0.240059304},
				{0.746396028,0.907688457,0.709201728,0.271935834,0.922384892,0.855035227,0.686871429,0.547406932,0.107849109,0.699022415,0.634321477,0.568124406,0.294793769,0.054733919,0.733624724,0.803087016,0.78893543,0.646826949,0.357547072,0.580345573,0.791203058,0.696659925,0.952917174,0.954790821},
				{0.239905503,0.986568349,0.523057173,0.073538999,0.75075486,0.709229033,0.371170158,0.991094013,0.211660438,0.281342657,0.75193176,0.848379377,0.090185556,0.403403548,0.345134681,0.822896785,0.793785446,0.781114174,0.013086594,0.281682683,0.486421104,0.089041631,0.132563484,0.124397776},
				{0.60987092,0.953401942,0.902471864,0.390799143,0.984037917,0.958397297,0.41997529,0.825007793,0.767777357,0.939320105,0.990691299,0.238399435,0.750245946,0.11567762,0.092667753,0.193609832,0.412500418,0.938878499,0.649197781,0.744060053,0.950049774,0.881563461,0.782135037,0.706571533},
				{0.979292247,0.779449829,0.015222076,0.219054287,0.964244249,0.7515996,0.976046476,0.140916253,0.494695504,0.171309551,0.005590576,0.190755134,0.42290089,0.637360869,0.725942631,0.58405916,0.523146148,0.404154806,0.539588497,0.333056021,0.777001185,0.269300399,0.237804656,0.301514465},
				{0.606801331,0.488508489,0.381024726,0.569216138,0.3808732,0.890186269,0.880653636,0.653980146,0.296248765,0.995915001,0.259654599,0.663536105,0.308087585,0.618032785,0.398335989,0.505206264,0.119753498,0.10183361,0.182116846,0.868270571,0.373469313,0.107432476,0.359650896,0.812053371},
				{0.088698638,0.585135855,0.092540892,0.442183867,0.083881479,0.388195509,0.131976584,0.338147013,0.586876156,0.788113218,0.292980929,0.107155002,0.490437133,0.01020224,0.913551191,0.682534598,0.741284136,0.790901328,0.283832699,0.759238085,0.164795845,0.873375485,0.609564696,0.064751212},
				{0.622086361,0.30422687,0.934389669,5.85E-04,0.772200727,0.371678722,0.587218243,0.557700079,0.869391085,0.034383487,0.143694503,0.30863449,0.963912668,0.730046282,0.59490681,0.709754346,0.594504617,0.524342982,0.401842115,0.908979523,0.561697576,0.66315207,0.380681875,0.747486386},
				{0.653316427,0.72490801,0.911890846,0.668309924,0.257023253,0.734922879,0.79514994,0.800430693,0.63947179,0.799812562,0.182537533,0.573845773,0.297621904,0.047702389,0.413963464,0.839286686,0.194988228,0.91867628,0.251713259,0.615662368,0.884074665,0.139972654,0.965060217,0.268967833},
				{0.485972161,0.041719311,0.951255519,0.138314736,0.249074341,0.221538642,0.095807576,0.367903033,0.941091822,0.950143402,0.872813534,0.978167556,0.642022612,0.125082602,0.265207669,0.014996955,0.600462793,0.026085923,0.945142439,0.952837203,0.691617912,0.602994212,0.796319966,0.395655033},
				{0.672602362,0.536052741,0.782943194,0.519151543,0.869090395,0.848382857,0.37405732,0.628279799,0.147109095,0.421736562,0.217403942,0.666034305,0.024740071,0.369178367,0.523511782,0.502644724,0.560723527,0.85212654,0.668599316,0.358719773,0.220434296,0.594226339,0.853966516,0.771551549},
				{0.264426719,0.040815784,0.269903969,0.100704547,0.330721207,0.840284253,0.103749919,0.687177774,0.789232435,0.082412844,0.904576441,0.429842175,0.135214978,0.518824869,0.271088413,0.723520158,0.1583296,0.811963458,0.564669786,0.414987199,0.874909276,0.711552894,0.366113801,0.676340797},
				{0.243230953,0.941288716,0.692424916,0.469594742,0.495075369,0.493541314,0.56918188,0.582021835,0.511584356,0.976146152,0.414303363,0.048681847,0.047400696,0.632893595,0.830658246,0.146735092,0.764303054,0.66811961,0.827815284,0.045557092,0.974024646,0.545838087,0.197327542,0.627332891},
				{0.709670841,0.005144633,0.751299095,0.954724222,0.24612748,0.636160601,0.400582716,0.355366417,0.472078668,0.99457508,0.596809167,0.117366565,0.579728586,0.397881913,0.491550044,0.345637634,0.383048975,0.742697709,0.276267572,0.615818247,0.201350714,0.910085869,0.558306706,0.680691213},
				{0.652203588,0.584600677,0.301036206,0.633428342,0.886205983,0.602804796,0.810346671,0.612652717,0.765831952,0.26830226,0.485065723,0.346224462,0.241560167,0.422868228,0.565451473,0.573819017,0.710715622,0.447046133,0.91177725,0.662781895,0.45793152,0.778621252,0.924122124,0.537407654},
				{0.370865413,0.983669461,0.074833278,0.378704526,7.80E-04,0.892418747,0.166727983,0.419870973,0.69482722,0.820949815,0.352953993,0.562123777,0.96534483,0.439801787,0.158529605,0.466181561,0.481213209,0.421837504,0.228935297,0.236622043,0.067281986,0.604262342,0.297731013,0.809494917},
				{0.88011406,0.033479356,0.913024613,0.677986466,0.491765627,0.926502686,0.791718168,0.646596164,0.958049093,0.278940222,0.280811064,0.891199682,0.073701769,0.577095601,0.296639711,0.720536337,0.924110035,0.830528583,0.285785817,0.084073628,0.531715414,0.931451901,0.205486196,0.051865133},
				{0.864954976,0.168632234,0.256729275,0.203932512,0.728565665,0.576000981,0.1198242,0.109865906,0.086308588,0.679970707,0.740081077,0.853751587,0.180645207,0.124491406,0.290341309,0.865199532,0.408625112,0.599170221,0.797449342,0.154157538,0.289220575,0.473317056,0.06135857,0.41536304},
				{0.014570015,0.547567756,0.918415199,0.367697023,0.016069482,0.374775588,0.604466328,0.124369564,0.695976846,0.673150448,0.958789091,0.351779539,0.976171225,0.457165168,0.476440003,0.468055782,0.597935351,0.645536243,0.764474946,0.156700877,0.170106578,0.070625993,0.786591703,0.02642273}},

				{{0.807667332,0.009902621,0.391098532,0.335153212,0.828823637,0.587632421,0.008714298,0.314417022,0.385846191,0.653769049,0.079556178,0.779628581,0.093425206,0.037042447,0.722773967,0.392557917,0.688016706,0.390539892,0.397640148,0.154121386,0.502634851,0.200610535,0.821507485,0.448816866},
				{0.073771015,0.913713655,0.207897,0.236536607,0.510597148,0.550870053,0.967080646,0.793155992,0.351337383,0.625665169,0.371875065,0.738209741,0.507668732,0.659291448,0.33296383,0.95613119,0.555237611,0.094906553,0.350917335,0.416944984,0.066856376,0.953622865,0.916181263,0.832966642},
				{0.904669729,0.14573364,0.1136559,0.549977509,0.388558166,0.953318798,0.955089954,0.06450667,0.040271832,0.834163836,0.010364596,0.083266451,0.166264312,0.361963589,0.237844667,0.096451303,0.88692379,0.814071643,0.52432546,0.023524651,0.345873514,0.645595776,0.336705306,0.608281793},
				{0.740242482,0.847428306,0.06036581,0.889391506,0.501281404,0.975839519,0.053342617,0.253282385,0.424427489,0.462551646,0.180721933,0.288155094,0.79889719,0.66674936,0.610298885,0.90106437,0.619112691,0.014272442,0.948385716,0.934429957,0.773744774,0.484274792,0.373759551,0.823998958},
				{0.702880942,0.64992354,0.288090326,0.677196459,0.389804574,0.457250525,0.142792127,0.518965088,0.711097205,0.935057957,0.525091437,0.351608577,0.107252397,0.068818924,0.290208686,0.105818336,0.25571703,0.142802258,0.511900003,0.521975696,0.929251299,0.957190927,0.290208129,0.493987422},
				{0.504726237,0.460751434,0.003123072,0.432325114,0.650953331,0.504651461,0.417954367,0.75860421,0.568868274,0.619311519,0.188568584,0.730951333,0.783366508,0.943715791,0.656247045,0.41757383,0.893315392,0.695396219,0.544770779,0.78535842,0.874744233,0.859343025,0.094440538,0.550990855},
				{0.501939921,0.095383866,0.41509209,0.654001709,0.202152549,0.216112982,0.354767872,0.954308077,0.191841877,0.971240678,0.978558063,0.03123496,0.055872154,0.28927258,0.831225628,0.766663726,0.02578925,0.57371702,0.517581343,0.731869557,0.08929094,0.128558351,0.776176231,0.265773915},
				{0.720227018,0.296522509,0.144731174,0.531751491,0.456943588,0.433700798,0.519823597,0.770796085,0.776511284,0.415386379,0.398704491,0.430762924,0.713354463,0.970517385,0.357718738,0.844569958,0.453024886,0.775909495,0.369654954,0.654654058,0.695339749,0.906499926,0.891451278,0.236642187},
				{0.925830482,0.934113846,0.264036056,0.96211213,0.860425615,0.694803062,0.857683318,0.258480888,0.235517405,0.503596399,0.569114801,0.073473141,0.804038076,0.385539707,0.730681841,0.532286431,0.867898902,0.713192851,0.227311894,0.287483197,0.928121242,0.493289954,0.633505899,0.304804699},
				{0.06621543,0.429058191,0.480524904,0.602515164,0.483840034,0.799729623,0.343004752,0.767548917,0.222500649,0.145069701,0.294590637,0.908647366,0.461023488,0.720284587,0.423783441,0.074836508,0.945766327,0.695459336,0.524042779,0.067010149,0.047005197,0.113717377,0.776291738,0.001047194},
				{0.654662268,0.693581039,0.227321343,0.942806944,0.627516859,0.663552039,0.13419302,0.428508379,0.792267637,0.950719663,0.792589978,0.7084157,0.552291408,0.210243649,0.29616911,0.107414339,0.010669783,0.378847726,0.784317373,0.982977386,0.138031748,0.662998817,0.127317359,0.379185386},
				{0.922987066,0.131236096,0.670779154,0.62487724,0.631401483,0.370153096,0.615296374,0.80467313,0.270491643,0.984824888,0.842636462,0.243525647,0.104693995,0.077011985,0.516376445,0.888618162,0.602488685,0.218260964,0.582747278,0.746844372,0.506835829,0.850061478,0.376551003,0.341766609},
				{0.816608168,0.489508124,0.89736713,0.490864738,0.342380873,0.596454487,0.962865484,0.572051416,0.157165443,0.466936339,0.368895077,0.847843708,0.701151558,0.057679361,0.390119535,0.34624491,0.519247098,0.217796185,0.440321343,0.259304525,0.611183194,0.406316829,0.478099146,0.813488864},
				{0.156177851,0.607984796,0.791532925,0.09040772,0.937627794,0.824791607,0.124494816,0.332108144,0.138025437,0.217009666,0.71763335,0.852058924,0.300273731,0.695024797,0.728661912,0.791114392,0.158798955,0.522056278,0.669432758,0.607159983,0.732337171,0.277893499,0.951379677,0.36780581},
				{0.539997592,0.355066113,0.366264764,0.62740908,0.053181892,0.011403765,0.345764887,0.912869454,0.528165549,0.886731208,0.141286268,0.617056642,0.177623561,0.806483039,0.644496666,0.404392218,0.234109663,0.641311291,0.42941608,0.070023018,0.834474619,0.969298856,0.738508574,0.162186676},
				{0.811435717,0.296180071,0.558069539,0.576784119,0.416986232,0.629009244,0.632304117,0.763838255,0.72206008,0.270006747,0.250844164,0.147431527,0.937843509,0.799851754,0.911052236,0.853879722,0.186352459,0.353478983,0.504313711,0.867313038,0.311370049,0.456477045,0.50461853,0.287499464},
				{0.165566413,0.886473634,0.748086167,0.451660138,0.435598308,0.251433372,0.783689189,0.300189577,0.474213661,0.235581595,0.44828204,0.515608457,0.796861981,0.753708155,0.27314303,0.644740285,0.870038498,0.57589269,0.564589674,0.626017534,0.569566477,0.337233078,0.517828616,0.886986734},
				{0.21924847,0.230947318,0.521053063,0.4514963,0.433793989,0.098258474,0.885902261,0.301714539,0.084657787,0.074760621,0.600749112,0.577040084,0.583399147,0.430504058,0.344883405,0.060130046,0.334399512,0.749825801,0.92451017,0.799686066,0.64725193,0.136991374,0.495583452,0.650302217},
				{0.618862892,0.705002593,0.423848274,0.971592705,0.49628331,0.207464886,0.399064407,0.721981457,0.813511872,0.307197418,0.468237328,0.706949875,0.158990937,0.640307566,0.981783665,0.797202545,0.775241499,0.530741029,0.056909339,0.519125868,0.318060121,0.937857391,0.054080844,0.538077225},
				{0.009927883,0.978370394,0.735321135,0.204457459,0.110756956,0.154031029,0.227163443,0.513183162,0.098828408,0.237720706,0.646447834,0.539089098,0.205749677,0.623160787,0.263746998,0.653955292,0.98148837,0.827233903,0.377058989,0.605267876,0.379014435,0.748951301,0.647506537,0.842485733},
				{0.44280995,0.235390006,0.509134141,0.313500308,0.061481856,0.48246202,0.406495144,0.322138922,0.401940267,0.807167417,0.03657361,0.936977003,0.581080459,0.368021891,0.475686092,0.872387619,0.850634462,0.481638484,0.057361069,0.724671853,0.071833488,0.285982384,0.133794786,0.939276629},
				{0.538750119,0.634606537,0.401333878,0.909521629,0.272664956,0.271215098,0.299536806,0.162919984,0.754529257,0.530190679,0.103717751,0.678092509,0.68857174,0.036260374,0.722478062,0.993438281,0.797324231,0.135264731,0.884581716,0.91813959,0.836817284,0.078032916,0.353633623,0.336742},
				{0.990423662,0.300656141,0.044369767,0.810465781,0.550803851,0.49699082,0.430971359,0.421567497,0.331634803,0.563011689,0.435665425,0.581486214,0.564278993,0.907674322,0.06497648,0.329171395,0.129278348,0.071235724,0.42134547,0.982904513,0.84853297,0.069520241,0.35943343,0.877090269},
				{0.221252387,0.391407607,0.979279102,0.314907104,0.425242886,0.116858753,0.352581391,0.7983712,0.624820997,0.194084176,0.363728709,0.059281783,0.6276203,0.516998433,0.313799427,0.407679975,0.714784697,0.077893956,0.983608531,0.438867032,0.032518199,0.13530586,0.180977789,0.195692821}}}};
		return dout;
	}
	
	
	@Test
	public void tstVoid()
	{
		double[][][][] tst = newArray(2,2,12,12);
		Util.printArray(tst);
		double[][][][] x = {{{{0.26275292990677157,0.6565656965859115,0.054277055170138144,0.04610182453249678,0.38832620963776343,0.3768092350323037,0.3246690079265814,0.7836333591000483,0.9680088618592965,0.33471627485970823,0.44017646103770225,0.24283985977188216},
			{0.8042149607232847,0.46447623510569613,0.304852362540866,0.5644529892507112,0.3170199940703944,0.11752576842448847,0.4955206266155804,0.2670611092784103,0.46752479065596,0.5149856275403087,0.19375789011737055,0.6661910866159929},
			{0.7981332782802808,0.7753626122271849,0.1989157742991131,0.26600910469675454,0.5026163936087793,0.3222344431959553,0.5957002915665607,0.5460341693303076,0.20543583414007516,0.46979949791902287,0.4320519686076987,0.1990475597610435},
			{0.17765340768490068,0.5085879671180165,0.3265464459987437,0.5414197638641064,0.04585270671661623,0.6692941973268262,0.26926242935304723,0.51336614540542,0.6608517853062807,0.9296047697559019,0.00603962836527383,0.4141811292976263},
			{0.6845870145503195,0.7470605017107197,0.3032767824500008,0.2762904418367712,0.6263996215588679,0.45040486199961405,0.07889575682589134,0.5719989863776004,0.5140585159710224,0.20253516341780342,0.8548243850396026,0.7681021600014956},
			{0.12020371593110624,0.16008713817811682,0.23732783072626584,0.09606662132291777,0.6814971764450126,0.6978473710165909,0.16374389512171283,0.7892757435046179,0.345618863485727,0.34060239409778603,0.46765493241136225,0.9538746635647072},
			{0.16034742938205726,0.3506969350944298,0.9092556321487877,0.18603782339272512,0.2793165755846668,0.7564882258256757,0.19365175259302303,0.02602184033160615,0.2006400484517552,0.9750472911196031,0.6570525933043144,0.34815559960613385},
			{0.2774489356344464,0.08187186532787927,0.23929530307003055,0.8259575378791145,0.4434874057944176,0.21103993613458494,0.08086675387390552,0.6828606289623428,0.08226425271894933,0.5311474002287514,0.5835646796614944,0.041563194980111406},
			{0.2348585498880601,0.7355359959002167,0.056166464278481154,0.318813922112825,0.8893307028746699,0.009733649868106209,0.1299505018989242,0.27747784438537226,0.9237902127328379,0.9946917106206288,0.9736417733432179,0.5440189261927632},
			{0.3855239577736973,0.3513186904367407,0.9633297954802853,0.6270750141356807,0.18019029187321622,0.14997379663899812,0.8701332892060184,0.7315884520679754,0.91793528114215,0.45799754723656005,0.8168631600982355,0.9529963267861131},
			{0.6173897157535321,0.1790210028473872,0.22466132548279238,0.7572718472271504,0.20385636835080745,0.4097091884066848,0.721569876887131,0.005148762554932684,0.254599185773175,0.3227580948722357,0.5172113240729134,0.1626487637962848},
			{0.2419970444272055,0.8593791220949784,0.06123764163880674,0.7550714832512133,0.6044269047027183,0.3201685038223673,0.8979318775390501,0.5678955619531211,0.33509204377187773,0.28017363455882693,0.5053230921217812,0.575578400682668}},

			{{0.4206135240569093,0.12213196951862726,0.5644016926220222,0.08803083977950832,0.3840533221041348,0.8812724256600291,0.5424990631452504,0.14458306440063795,0.391140829867781,0.025733407541433495,0.6946214378452702,0.7565459882684534},
			{0.8638239823590357,0.25856519494988495,0.5875052815949044,0.20201189602152325,0.31187000457302283,0.4204490543438769,0.03338719674919921,0.21032761270107403,0.14109007879642532,0.09667903166689218,0.8839585468406402,0.5387118308915496},
			{0.5258660068146154,0.5876165593509056,0.47970131324779464,0.13977738383409355,0.04400658220936893,0.4887425418227491,0.6757783413334032,0.8462591766451157,0.6635642868424758,0.24459472811494287,0.27287722398789893,0.2580360334532189},
			{0.8440938524492455,0.6902930963124934,0.3698848183114819,0.3065753992463277,0.9689359099315428,0.7750196972071817,0.6249942802703835,0.7932175867242635,0.06046065528566957,0.37373327478550866,0.662824746355042,0.05025625118319299},
			{0.7468076407831732,0.3365634311794208,0.8973590128525756,0.7575601063131019,0.746510121972569,0.6997429860707752,0.8539819777296096,0.8625206751103981,0.7164928601536034,0.28760094229607525,0.6686288794440767,0.49739918226735},
			{0.16928491950658597,0.7720533622448398,0.8180286684578053,0.7656854878282098,0.3068899039332518,0.624192428845029,0.2922550301717174,0.2778704053779528,0.04160772447532346,0.29198881027833035,0.35927348178391116,0.3570722108381995},
			{0.17820394178877386,0.3687865911659334,0.7909000190670781,0.9062471101676386,0.7171735590542498,0.4791831469861402,0.9205629955199895,0.03125231313365062,0.5054486056120355,0.10205155217261697,0.18548684039012742,0.6478196922796481},
			{0.0087496871690107,0.5748765513943935,0.8693924927840753,0.4655370014973492,0.8088835370419811,0.07923914231930895,0.6065358362405967,0.9382224958410523,0.5396401285708603,0.49419922299641383,0.8338827216976065,0.9976180102291348},
			{0.3665444889866567,0.6224894749762436,0.785444982552713,0.6461148810478728,0.7885701237635133,0.4438481000311977,0.8112783639683613,0.7742654138172013,0.4940217257282682,0.7304815051091227,0.7733707928289044,0.8901225495027052},
			{0.23814765968319374,0.5715629062362243,0.021624775574324184,0.7999888772226222,0.22664321497750683,0.09683605764374559,0.9853651604435859,0.6639452085608365,0.287057575334695,0.963807813152881,0.7292794174775838,0.26456846414863766},
			{0.18921909406749815,0.9786775921049929,0.917425013794189,0.7735370917998131,0.8361450518114255,0.5580648150729772,0.5049137274704,0.7783615148217246,0.6885031511449683,0.60676091423999,0.13411076823221724,0.8402665882318029},
			{0.7085444454865082,0.7861452303644995,0.6506620522482174,0.3942913336763798,0.31352794511001436,0.07856903415941008,0.37438987535678514,0.373960923679002,0.31400971000936184,0.014925597628435261,0.7610740092099564,0.5454245784502446}}},

			{{{0.5789697596474889,0.9257884487619701,0.8733616547690982,0.16974242260291428,0.2176028203802527,0.10091395574172113,0.642525950856619,0.27704302402627634,0.3966994861101636,0.7975682342405938,0.24751986533252412,0.5325626439850386},
			{0.5228963925831768,0.625053111514271,0.0637484451809247,0.40211643606640357,0.4106758913670028,0.9509689209614891,0.5412089700687147,0.08334037565741093,0.22984647246530776,0.6241668914657215,0.06012560138120948,0.4590823991367239},
			{0.48033737282729216,0.4900076184710025,0.28193066349313756,0.1506098477357608,0.977492335543882,0.8854557206795286,0.7644226998068827,0.600839513993715,0.847648530094083,0.5447057429011083,0.6421565186629289,0.0015856487426287869},
			{0.8316389659549522,0.12044774130688973,0.9865981566343535,0.7938604122285465,0.7729576629082794,0.8315451365255583,0.05530350900494174,0.41655020588430625,0.027678691146430623,0.5848118509310282,0.015356364137106726,0.9563304590465789},
			{0.6748217409036639,0.2867393564206475,0.8835281206358694,0.3604703801241661,0.8287083781373334,0.9604386572974778,0.3640974295982615,0.9142186147308806,0.05895473876735324,0.7137260635436511,0.9849957580882542,0.7557491939784422},
			{0.909098094250941,0.5661958711819358,0.43392006315664655,0.3041868098545877,0.7714558599742376,0.6362868943021143,0.2782813901222607,0.6100192650287652,0.9236678840129448,0.21376420095654558,0.31633413682362577,0.8022438205031961},
			{0.36147369915208727,0.7987009917962149,0.6515577734585731,0.002883776812998784,0.17262852786939376,0.2749601141639867,0.20833877008093937,0.3070499762198726,0.5884628736964606,0.0043384670486678045,0.8142276854000347,0.6855115824404254},
			{0.5224428226568009,0.7769515818142982,0.16252250154969416,0.956779171222612,0.35918892882293774,0.2341000940642609,0.93865600398849,0.2969925184619854,0.9927635102495443,0.591773267571358,0.14484161820760555,0.1084441465278757},
			{0.6296382031380068,0.23610945687943075,0.18965840194057504,0.45135926357129763,0.6696039994361519,0.036547106180592426,0.6227329855777893,0.658591357067349,0.05698879419225378,0.028063695981771164,0.4894023365467207,0.19918187182122948},
			{0.8548984321326973,0.45081487486587113,0.15621766643304236,0.3342718161155456,0.4367985734897024,0.003649273425562427,0.11537728804163239,0.6176414117892931,0.6126070378192209,0.5673888138058674,0.714651365965105,0.8331940448503806},
			{0.21056693430934104,0.5844289412761152,0.9790896380578682,0.5329887296179249,0.12152318574637255,0.7431262959208125,0.6917782070296834,0.9419653032976054,0.5788262292632622,0.6086061166421796,0.6831393120341289,0.6292948791216356},
			{0.4949383097661868,0.36603553340249995,0.8417439553731081,0.011327655164316774,0.004919335078291565,0.89807291498444,0.7043337038497559,0.4473991549307019,0.9773210482789627,0.005117628314470268,0.6087249972857344,0.4172946777339873}},
			{{0.14461936858075874,0.6951482312238607,0.30049559677511606,0.027961264412804554,0.6781667816007406,0.11935203665161975,0.5728291970385402,0.8870954214822921,0.48674804352534995,0.9104118744687429,0.9886212323087195,0.2025235668917036},
			{0.2531738272869599,0.3922311480669358,0.9849250632078955,0.8188317807634667,0.23994883380872623,0.37304124274180483,0.6920445778890775,0.7864900425642279,0.19290242356272636,0.008250476959896447,0.6130554183001865,0.9737554555433786},
			{0.25077096332227045,0.5250567148895011,0.904264295229435,0.17792788238176482,0.6290731711772062,0.4377608153347484,0.3730915909993344,0.170070717683109,0.9882210361851576,0.2508818064706385,0.46708954221976884,0.1160980707248831},
			{0.818660549742515,0.5465881651203657,0.46628485444011614,0.8571694076183896,0.8799378433243736,0.7836247957977233,0.8107608344727072,0.6036212172157264,0.7159383055344868,0.09682822504299882,0.9963709286646486,0.6992043376857867},
			{0.535147196395781,0.8794874869484894,0.7537023006234359,0.24618509145319567,0.2926326769929807,0.9552214062058096,0.288883980092301,0.5469071181590449,0.6395526900913024,0.7017079574820744,0.2095615500096657,0.5136995731231746},
			{0.5163398004136955,0.5755145628706321,0.3853362565353643,0.42655715594118726,0.5573187446374248,0.10544296512787055,0.3991932409725695,0.6768058661495875,0.14736349303714458,0.57121583727895,0.4349199768552555,0.4250075663043048},
			{0.9253022393120262,0.26499676432397323,0.41524299308785373,0.42264590540538116,0.7641297634773448,0.4451489316674022,0.9563870251957185,0.5996745017534706,0.7746889323225329,0.8348023123470559,0.23698744099523283,0.40379818625103236},
			{0.6773341200360016,0.7922127816317115,0.19276353827437764,0.2923962121014173,0.9651908661137052,0.08556104221588967,0.5430869166732764,0.22428645950973103,0.6429781982080965,0.541753055753057,0.03155494311968665,0.47606782574035356},
			{0.9669609907009582,0.7069477707062026,0.9199071762260876,0.6165673805858107,0.5344516065613056,0.05595196973084671,0.21309798984224493,0.012958382264393165,0.2753815542748047,0.2182866131852933,0.3130658757178234,0.813403324367578},
			{0.38381562405386516,0.15064201292146606,0.7997161638419692,0.9536162479900067,0.9938820689892345,0.17860454065931908,0.81986072621157,0.368526938908851,0.45244467032505387,0.3549506045181783,0.1283344036419043,0.2552690794495174},
			{0.36994333412438996,0.637468353884124,0.17023501019684661,0.9300031950449431,0.2411819808572322,0.9761812996234965,0.719209650311193,0.5486246377684068,0.31944382372525304,0.5180119707028514,0.4939371883965754,0.7201955421903025},
			{0.6001656991162516,0.7863383612835273,0.8634332664266959,0.8319789244752551,0.22450464523522062,0.8735594661850751,0.22153027168720685,0.7262423968601242,0.34848169090930314,0.3967002516803779,0.8618618281840397,0.22153745736734376}}}};

	}
	

}
